home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1997 January: Mac OS SDK / Dev.CD Jan 97 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Interfaces / AIncludes / Slots.a < prev    next >
Encoding:
Text File  |  1996-01-24  |  22.0 KB  |  1,031 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        Slots.a
  3. ;
  4. ;    Contains:    Slot Manager Interfaces.
  5. ;
  6. ;    Version:    Technology:    System 7.5
  7. ;                Package:    Universal Interfaces 2.2 in “MPW” on ETO #20
  8. ;
  9. ;    Copyright:    © 1984-1995 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, use the Apple Bug Reporter
  13. ;                stack.  Include the file and version information (from above)
  14. ;                in the problem description and send to:
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__SLOTS__') = 'UNDEFINED' THEN
  21. __SLOTS__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29.     IF &TYPE('__EVENTS__') = 'UNDEFINED' THEN
  30.     include 'Events.a'
  31.     ENDIF
  32. ;        include 'Quickdraw.a'                                        ;
  33. ;            include 'MixedMode.a'                                    ;
  34. ;            include 'QuickdrawText.a'                                ;
  35. ;        include 'OSUtils.a'                                        ;
  36. ;            include 'Memory.a'                                        ;
  37.  
  38.     IF &TYPE('__OSUTILS__') = 'UNDEFINED' THEN
  39.     include 'OSUtils.a'
  40.     ENDIF
  41.  
  42.     IF &TYPE('__FILES__') = 'UNDEFINED' THEN
  43.     include 'Files.a'
  44.     ENDIF
  45. ;        include 'Finder.a'                                            ;
  46.  
  47. fDontUse                        EQU        0                    ;old slotmgr put fcardIsChanged here
  48. fCardIsChanged                    EQU        1                    ;card is Changed field in StatusFlags field of sInfoArray
  49. fTempEnabled                    EQU        2                    ;slot is temporarily enabled
  50. fCkForNext                        EQU        0                    ;check for NEXT sRsrc in SRT            (SearchSRT)
  51. fCkReserved                        EQU        1                    ;check reserved field for zero         (ReadPBSize)
  52. fWarmStart                        EQU        2                    ;warm start, else cold start            (PrimaryInit)
  53. fClear                            EQU        3                    ;clear the memory                        (sNewPtr)
  54. fSys                            EQU        4                    ;alloc  on system heap                 (sNewPtr)
  55. fConsecBytes                    EQU        5                    ;calc step value for consecutive bytes (CalcStep)
  56.  
  57. stateNil                        EQU        0                    ;State
  58. stateSDMInit                    EQU        1                    ;:Slot declaration manager Init
  59. statePRAMInit                    EQU        2                    ;:sPRAM record init
  60. statePInit                        EQU        3                    ;:Primary init
  61. stateSInit                        EQU        4                    ;:Secondary init
  62. ; flags for spParamData 
  63. fall                            EQU        0                    ; bit 0: set=search enabled/disabled sRsrc's 
  64. foneslot                        EQU        1                    ;    1: set=search sRsrc's in given slot only 
  65. fnext                            EQU        2                    ;    2: set=search for next sRsrc 
  66. ; Misc masks 
  67. catMask                            EQU        $08                    ; sets spCategory field of spTBMask (bit 3) 
  68. cTypeMask                        EQU        $04                    ; sets spCType    field of spTBMask (bit 2) 
  69. drvrSWMask                        EQU        $02                    ; sets spDrvrSW   field of spTBMask (bit 1) 
  70. drvrHWMask                        EQU        $01                    ; sets spDrvrHW      field of spTBMask (bit 0) 
  71.  
  72. SlotIntQElement         RECORD    0
  73. sqLink                     ds.l   1        ; offset: $0 (0)        ;ptr to next element
  74. sqType                     ds.w   1        ; offset: $4 (4)        ;queue type ID for validity
  75. sqPrio                     ds.w   1        ; offset: $6 (6)        ;priority
  76. sqAddr                     ds.l   1        ; offset: $8 (8)        ;interrupt service routine
  77. sqParm                     ds.l   1        ; offset: $C (12)        ;optional A1 parameter
  78. sizeof                     EQU *            ; size:   $10 (16)
  79.                         ENDR
  80.  
  81. ; typedef struct SlotIntQElement  SlotIntQElement
  82. ; typedef SlotIntQElement     *SQElemPtr
  83. SpBlock                 RECORD    0
  84. spResult                 ds.l   1        ; offset: $0 (0)        ;FUNCTION Result
  85. spsPointer                 ds.l   1        ; offset: $4 (4)        ;structure pointer
  86. spSize                     ds.l   1        ; offset: $8 (8)        ;size of structure
  87. spOffsetData             ds.l   1        ; offset: $C (12)        ;offset/data field used by sOffsetData
  88. spIOFileName             ds.l   1        ; offset: $10 (16)        ;ptr to IOFile name for sDisDrvrName
  89. spsExecPBlk                 ds.l   1        ; offset: $14 (20)        ;pointer to sExec parameter block.
  90. spParamData                 ds.l   1        ; offset: $18 (24)        ;misc parameter data (formerly spStackPtr).
  91. spMisc                     ds.l   1        ; offset: $1C (28)        ;misc field for SDM.
  92. spReserved                 ds.l   1        ; offset: $20 (32)        ;reserved for future expansion
  93. spIOReserved             ds.w   1        ; offset: $24 (36)        ;Reserved field of Slot Resource Table
  94. spRefNum                 ds.w   1        ; offset: $26 (38)        ;RefNum
  95. spCategory                 ds.w   1        ; offset: $28 (40)        ;sType: Category
  96. spCType                     ds.w   1        ; offset: $2A (42)        ;Type
  97. spDrvrSW                 ds.w   1        ; offset: $2C (44)        ;DrvrSW
  98. spDrvrHW                 ds.w   1        ; offset: $2E (46)        ;DrvrHW
  99. spTBMask                 ds.b   1        ; offset: $30 (48)        ;type bit mask bits 0..3 mask words 0..3
  100. spSlot                     ds.b   1        ; offset: $31 (49)        ;slot number
  101. spID                     ds.b   1        ; offset: $32 (50)        ;structure ID
  102. spExtDev                 ds.b   1        ; offset: $33 (51)        ;ID of the external device
  103. spHwDev                     ds.b   1        ; offset: $34 (52)        ;Id of the hardware device.
  104. spByteLanes                 ds.b   1        ; offset: $35 (53)        ;bytelanes from card ROM format block
  105. spFlags                     ds.b   1        ; offset: $36 (54)        ;standard flags
  106. spKey                     ds.b   1        ; offset: $37 (55)        ;Internal use only
  107. sizeof                     EQU *            ; size:   $38 (56)
  108.                         ENDR
  109.  
  110. ; typedef struct SpBlock     SpBlock
  111. ; typedef SpBlock             *SpBlockPtr
  112. SInfoRecord             RECORD    0
  113. siDirPtr                 ds.l   1        ; offset: $0 (0)        ;Pointer to directory
  114. siInitStatusA             ds.w   1        ; offset: $4 (4)        ;initialization E
  115. siInitStatusV             ds.w   1        ; offset: $6 (6)        ;status returned by vendor init code
  116. siState                     ds.b   1        ; offset: $8 (8)        ;initialization state
  117. siCPUByteLanes             ds.b   1        ; offset: $9 (9)        ;0=[d0..d7] 1=[d8..d15]
  118. siTopOfROM                 ds.b   1        ; offset: $A (10)        ;Top of ROM= $FssFFFFx: x is TopOfROM
  119. siStatusFlags             ds.b   1        ; offset: $B (11)        ;bit 0 - card is changed
  120. siTOConst                 ds.w   1        ; offset: $C (12)        ;Time Out C for BusErr
  121. siReserved                 ds.b   2        ; offset: $E (14)        ;reserved
  122. siROMAddr                 ds.l   1        ; offset: $10 (16)        ; addr of top of ROM 
  123. siSlot                     ds.b   1        ; offset: $14 (20)        ; slot number 
  124. siPadding                 ds.b   3        ; offset: $15 (21)        ; reserved 
  125. sizeof                     EQU *            ; size:   $18 (24)
  126.                         ENDR
  127.  
  128. ; typedef struct SInfoRecord  SInfoRecord
  129. ; typedef SInfoRecord         *SInfoRecPtr
  130. SDMRecord                 RECORD    0
  131. sdBEVSave                 ds.l   1        ; offset: $0 (0)        ;Save old BusErr vector
  132. sdBusErrProc             ds.l   1        ; offset: $4 (4)        ;Go here to determine if it is a BusErr
  133. sdErrorEntry             ds.l   1        ; offset: $8 (8)        ;Go here if BusErrProc finds real BusErr
  134. sdReserved                 ds.l   1        ; offset: $C (12)        ;Reserved
  135. sizeof                     EQU *            ; size:   $10 (16)
  136.                         ENDR
  137.  
  138. ; typedef struct SDMRecord     SDMRecord
  139. FHeaderRec                 RECORD    0
  140. fhDirOffset                 ds.l   1        ; offset: $0 (0)        ;offset to directory
  141. fhLength                 ds.l   1        ; offset: $4 (4)        ;length of ROM
  142. fhCRC                     ds.l   1        ; offset: $8 (8)        ;CRC
  143. fhROMRev                 ds.b   1        ; offset: $C (12)        ;revision of ROM
  144. fhFormat                 ds.b   1        ; offset: $D (13)        ;format - 2
  145. fhTstPat                 ds.l   1        ; offset: $E (14)        ;test pattern
  146. fhReserved                 ds.b   1        ; offset: $12 (18)        ;reserved
  147. fhByteLanes                 ds.b   1        ; offset: $13 (19)        ;ByteLanes
  148. sizeof                     EQU *            ; size:   $14 (20)
  149.                         ENDR
  150.  
  151. ; typedef struct FHeaderRec  FHeaderRec
  152. ; typedef FHeaderRec         *FHeaderRecPtr
  153. OffsetToDir        EQU            FHeaderRec.fhDirOffset-FHeaderRec.sizeof+1    ; offset to dir ptr    <1.8>
  154. ;     Extended Format header block  -  extended declaration ROM format header for super sRsrc directories.    <H2><SM0>
  155. XFHeaderRec             RECORD    0
  156. fhXSuperInit             ds.l   1        ; offset: $0 (0)        ;Offset to SuperInit SExecBlock    <fhFormat,offset>
  157. fhXSDirOffset             ds.l   1        ; offset: $4 (4)        ;Offset to SuperDirectory            <$FE,offset>
  158. fhXEOL                     ds.l   1        ; offset: $8 (8)        ;Psuedo end-of-list                <$FF,nil>
  159. fhXSTstPat                 ds.l   1        ; offset: $C (12)        ;TestPattern
  160. fhXDirOffset             ds.l   1        ; offset: $10 (16)        ;Offset to (minimal) directory
  161. fhXLength                 ds.l   1        ; offset: $14 (20)        ;Length of ROM
  162. fhXCRC                     ds.l   1        ; offset: $18 (24)        ;CRC
  163. fhXROMRev                 ds.b   1        ; offset: $1C (28)        ;Revision of ROM
  164. fhXFormat                 ds.b   1        ; offset: $1D (29)        ;Format-2
  165. fhXTstPat                 ds.l   1        ; offset: $1E (30)        ;TestPattern
  166. fhXReserved                 ds.b   1        ; offset: $22 (34)        ;Reserved
  167. fhXByteLanes             ds.b   1        ; offset: $23 (35)        ;ByteLanes
  168. sizeof                     EQU *            ; size:   $24 (36)
  169.                         ENDR
  170.  
  171. ; typedef struct XFHeaderRec  XFHeaderRec
  172. ; typedef XFHeaderRec         *XFHeaderRecPtr
  173. XFHdrExtraSize    Equ            XFHeaderRec.sizeof-FHeaderRec.sizeof        ; (extended - standard) delta
  174. XOffsetToDir    Equ            XFHeaderRec.fhXSDirOffset-XFHeaderRec.sizeof+1    ; offset to super dir ptr
  175. XOffsetToSInit    Equ            XFHeaderRec.fhXSuperInit-XFHeaderRec.sizeof+1    ; offset to super dir ptr
  176. SEBlock                 RECORD    0
  177. seSlot                     ds.b   1        ; offset: $0 (0)        ;Slot number.
  178. sesRsrcId                 ds.b   1        ; offset: $1 (1)        ;sResource Id.
  179. seStatus                 ds.w   1        ; offset: $2 (2)        ;Status of code executed by sExec.
  180. seFlags                     ds.b   1        ; offset: $4 (4)        ;Flags
  181. seFiller0                 ds.b   1        ; offset: $5 (5)        ;Filler, must be SignedByte to align on odd boundry
  182. seFiller1                 ds.b   1        ; offset: $6 (6)        ;Filler
  183. seFiller2                 ds.b   1        ; offset: $7 (7)        ;Filler
  184. seResult                 ds.l   1        ; offset: $8 (8)        ;Result of sLoad.
  185. seIOFileName             ds.l   1        ; offset: $C (12)        ;Pointer to IOFile name.
  186. seDevice                 ds.b   1        ; offset: $10 (16)        ;Which device to read from.
  187. sePartition                 ds.b   1        ; offset: $11 (17)        ;The partition.
  188. seOSType                 ds.b   1        ; offset: $12 (18)        ;Type of OS.
  189. seReserved                 ds.b   1        ; offset: $13 (19)        ;Reserved field.
  190. seRefNum                 ds.b   1        ; offset: $14 (20)        ;RefNum of the driver.
  191. seNumDevices             ds.b   1        ; offset: $15 (21)        ; Number of devices to load.
  192. seBootState                 ds.b   1        ; offset: $16 (22)        ;State of StartBoot code.
  193. filler                     ds.b   1        ; offset: $17 (23)
  194. sizeof                     EQU *            ; size:   $18 (24)
  195.                         ENDR
  196.  
  197. ; typedef struct SEBlock     SEBlock
  198. ;  Principle  
  199. ;
  200. ; pascal OSErr SReadByte(SpBlockPtr spBlkPtr)
  201. ;
  202.     IF ¬ GENERATINGCFM THEN
  203.         ; parameters: 
  204.         ;     spBlkPtr          => A0
  205.         ; returns: 
  206.         ;     OSErr             <= D0
  207.         Macro
  208.         _SReadByte
  209.             moveq    #0,d0
  210.             dc.w     $A06E
  211.         EndM
  212.     ELSE
  213.         IMPORT_CFM_FUNCTION    SReadByte
  214.     ENDIF
  215.  
  216. ;
  217. ; pascal OSErr SReadWord(SpBlockPtr spBlkPtr)
  218. ;
  219.     IF ¬ GENERATINGCFM THEN
  220.         ; parameters: 
  221.         ;     spBlkPtr          => A0
  222.         ; returns: 
  223.         ;     OSErr             <= D0
  224.         Macro
  225.         _SReadWord
  226.             moveq    #1,d0
  227.             dc.w     $A06E
  228.         EndM
  229.     ELSE
  230.         IMPORT_CFM_FUNCTION    SReadWord
  231.     ENDIF
  232.  
  233. ;
  234. ; pascal OSErr SReadLong(SpBlockPtr spBlkPtr)
  235. ;
  236.     IF ¬ GENERATINGCFM THEN
  237.         ; parameters: 
  238.         ;     spBlkPtr          => A0
  239.         ; returns: 
  240.         ;     OSErr             <= D0
  241.         Macro
  242.         _SReadLong
  243.             moveq    #2,d0
  244.             dc.w     $A06E
  245.         EndM
  246.     ELSE
  247.         IMPORT_CFM_FUNCTION    SReadLong
  248.     ENDIF
  249.  
  250. ;
  251. ; pascal OSErr SGetCString(SpBlockPtr spBlkPtr)
  252. ;
  253.     IF ¬ GENERATINGCFM THEN
  254.         ; parameters: 
  255.         ;     spBlkPtr          => A0
  256.         ; returns: 
  257.         ;     OSErr             <= D0
  258.         Macro
  259.         _SGetCString
  260.             moveq    #3,d0
  261.             dc.w     $A06E
  262.         EndM
  263.     ELSE
  264.         IMPORT_CFM_FUNCTION    SGetCString
  265.     ENDIF
  266.  
  267. ;
  268. ; pascal OSErr SGetBlock(SpBlockPtr spBlkPtr)
  269. ;
  270.     IF ¬ GENERATINGCFM THEN
  271.         ; parameters: 
  272.         ;     spBlkPtr          => A0
  273.         ; returns: 
  274.         ;     OSErr             <= D0
  275.         Macro
  276.         _SGetBlock
  277.             moveq    #5,d0
  278.             dc.w     $A06E
  279.         EndM
  280.     ELSE
  281.         IMPORT_CFM_FUNCTION    SGetBlock
  282.     ENDIF
  283.  
  284. ;
  285. ; pascal OSErr SFindStruct(SpBlockPtr spBlkPtr)
  286. ;
  287.     IF ¬ GENERATINGCFM THEN
  288.         ; parameters: 
  289.         ;     spBlkPtr          => A0
  290.         ; returns: 
  291.         ;     OSErr             <= D0
  292.         Macro
  293.         _SFindStruct
  294.             moveq    #6,d0
  295.             dc.w     $A06E
  296.         EndM
  297.     ELSE
  298.         IMPORT_CFM_FUNCTION    SFindStruct
  299.     ENDIF
  300.  
  301. ;
  302. ; pascal OSErr SReadStruct(SpBlockPtr spBlkPtr)
  303. ;
  304.     IF ¬ GENERATINGCFM THEN
  305.         ; parameters: 
  306.         ;     spBlkPtr          => A0
  307.         ; returns: 
  308.         ;     OSErr             <= D0
  309.         Macro
  310.         _SReadStruct
  311.             moveq    #7,d0
  312.             dc.w     $A06E
  313.         EndM
  314.     ELSE
  315.         IMPORT_CFM_FUNCTION    SReadStruct
  316.     ENDIF
  317.  
  318. ;  Special  
  319. ;
  320. ; pascal OSErr SReadInfo(SpBlockPtr spBlkPtr)
  321. ;
  322.     IF ¬ GENERATINGCFM THEN
  323.         ; parameters: 
  324.         ;     spBlkPtr          => A0
  325.         ; returns: 
  326.         ;     OSErr             <= D0
  327.         Macro
  328.         _SReadInfo
  329.             moveq    #16,d0
  330.             dc.w     $A06E
  331.         EndM
  332.     ELSE
  333.         IMPORT_CFM_FUNCTION    SReadInfo
  334.     ENDIF
  335.  
  336. ;
  337. ; pascal OSErr SReadPRAMRec(SpBlockPtr spBlkPtr)
  338. ;
  339.     IF ¬ GENERATINGCFM THEN
  340.         ; parameters: 
  341.         ;     spBlkPtr          => A0
  342.         ; returns: 
  343.         ;     OSErr             <= D0
  344.         Macro
  345.         _SReadPRAMRec
  346.             moveq    #17,d0
  347.             dc.w     $A06E
  348.         EndM
  349.     ELSE
  350.         IMPORT_CFM_FUNCTION    SReadPRAMRec
  351.     ENDIF
  352.  
  353. ;
  354. ; pascal OSErr SPutPRAMRec(SpBlockPtr spBlkPtr)
  355. ;
  356.     IF ¬ GENERATINGCFM THEN
  357.         ; parameters: 
  358.         ;     spBlkPtr          => A0
  359.         ; returns: 
  360.         ;     OSErr             <= D0
  361.         Macro
  362.         _SPutPRAMRec
  363.             moveq    #18,d0
  364.             dc.w     $A06E
  365.         EndM
  366.     ELSE
  367.         IMPORT_CFM_FUNCTION    SPutPRAMRec
  368.     ENDIF
  369.  
  370. ;
  371. ; pascal OSErr SReadFHeader(SpBlockPtr spBlkPtr)
  372. ;
  373.     IF ¬ GENERATINGCFM THEN
  374.         ; parameters: 
  375.         ;     spBlkPtr          => A0
  376.         ; returns: 
  377.         ;     OSErr             <= D0
  378.         Macro
  379.         _SReadFHeader
  380.             moveq    #19,d0
  381.             dc.w     $A06E
  382.         EndM
  383.     ELSE
  384.         IMPORT_CFM_FUNCTION    SReadFHeader
  385.     ENDIF
  386.  
  387. ;
  388. ; pascal OSErr SNextSRsrc(SpBlockPtr spBlkPtr)
  389. ;
  390.     IF ¬ GENERATINGCFM THEN
  391.         ; parameters: 
  392.         ;     spBlkPtr          => A0
  393.         ; returns: 
  394.         ;     OSErr             <= D0
  395.         Macro
  396.         _SNextSRsrc
  397.             moveq    #20,d0
  398.             dc.w     $A06E
  399.         EndM
  400.     ELSE
  401.         IMPORT_CFM_FUNCTION    SNextSRsrc
  402.     ENDIF
  403.  
  404. ;
  405. ; pascal OSErr SNextTypeSRsrc(SpBlockPtr spBlkPtr)
  406. ;
  407.     IF ¬ GENERATINGCFM THEN
  408.         ; parameters: 
  409.         ;     spBlkPtr          => A0
  410.         ; returns: 
  411.         ;     OSErr             <= D0
  412.         Macro
  413.         _SNextTypeSRsrc
  414.             moveq    #21,d0
  415.             dc.w     $A06E
  416.         EndM
  417.     ELSE
  418.         IMPORT_CFM_FUNCTION    SNextTypeSRsrc
  419.     ENDIF
  420.  
  421. ;
  422. ; pascal OSErr SRsrcInfo(SpBlockPtr spBlkPtr)
  423. ;
  424.     IF ¬ GENERATINGCFM THEN
  425.         ; parameters: 
  426.         ;     spBlkPtr          => A0
  427.         ; returns: 
  428.         ;     OSErr             <= D0
  429.         Macro
  430.         _SRsrcInfo
  431.             moveq    #22,d0
  432.             dc.w     $A06E
  433.         EndM
  434.     ELSE
  435.         IMPORT_CFM_FUNCTION    SRsrcInfo
  436.     ENDIF
  437.  
  438. ;
  439. ; pascal OSErr SDisposePtr(SpBlockPtr spBlkPtr)
  440. ;
  441.     IF ¬ GENERATINGCFM THEN
  442.         ; parameters: 
  443.         ;     spBlkPtr          => A0
  444.         ; returns: 
  445.         ;     OSErr             <= D0
  446.         Macro
  447.         _SDisposePtr
  448.             moveq    #23,d0
  449.             dc.w     $A06E
  450.         EndM
  451.     ELSE
  452.         IMPORT_CFM_FUNCTION    SDisposePtr
  453.     ENDIF
  454.  
  455. ;
  456. ; pascal OSErr SCkCardStat(SpBlockPtr spBlkPtr)
  457. ;
  458.     IF ¬ GENERATINGCFM THEN
  459.         ; parameters: 
  460.         ;     spBlkPtr          => A0
  461.         ; returns: 
  462.         ;     OSErr             <= D0
  463.         Macro
  464.         _SCkCardStat
  465.             moveq    #24,d0
  466.             dc.w     $A06E
  467.         EndM
  468.     ELSE
  469.         IMPORT_CFM_FUNCTION    SCkCardStat
  470.     ENDIF
  471.  
  472. ;
  473. ; pascal OSErr SReadDrvrName(SpBlockPtr spBlkPtr)
  474. ;
  475.     IF ¬ GENERATINGCFM THEN
  476.         ; parameters: 
  477.         ;     spBlkPtr          => A0
  478.         ; returns: 
  479.         ;     OSErr             <= D0
  480.         Macro
  481.         _SReadDrvrName
  482.             moveq    #25,d0
  483.             dc.w     $A06E
  484.         EndM
  485.     ELSE
  486.         IMPORT_CFM_FUNCTION    SReadDrvrName
  487.     ENDIF
  488.  
  489. ;
  490. ; pascal OSErr SFindSRTRec(SpBlockPtr spBlkPtr)
  491. ;
  492.     IF ¬ GENERATINGCFM THEN
  493.         ; parameters: 
  494.         ;     spBlkPtr          => A0
  495.         ; returns: 
  496.         ;     OSErr             <= D0
  497.         Macro
  498.         _SFindSRTRec
  499.             moveq    #26,d0
  500.             dc.w     $A06E
  501.         EndM
  502.     ELSE
  503.         IMPORT_CFM_FUNCTION    SFindSRTRec
  504.     ENDIF
  505.  
  506. ;
  507. ; pascal OSErr SFindDevBase(SpBlockPtr spBlkPtr)
  508. ;
  509.     IF ¬ GENERATINGCFM THEN
  510.         ; parameters: 
  511.         ;     spBlkPtr          => A0
  512.         ; returns: 
  513.         ;     OSErr             <= D0
  514.         Macro
  515.         _SFindDevBase
  516.             moveq    #27,d0
  517.             dc.w     $A06E
  518.         EndM
  519.     ELSE
  520.         IMPORT_CFM_FUNCTION    SFindDevBase
  521.     ENDIF
  522.  
  523. ;
  524. ; pascal OSErr SFindBigDevBase(SpBlockPtr spBlkPtr)
  525. ;
  526.     IF ¬ GENERATINGCFM THEN
  527.         ; parameters: 
  528.         ;     spBlkPtr          => A0
  529.         ; returns: 
  530.         ;     OSErr             <= D0
  531.         Macro
  532.         _SFindBigDevBase
  533.             moveq    #28,d0
  534.             dc.w     $A06E
  535.         EndM
  536.     ELSE
  537.         IMPORT_CFM_FUNCTION    SFindBigDevBase
  538.     ENDIF
  539.  
  540. ;  Advanced  
  541. ;
  542. ; pascal OSErr InitSDeclMgr(SpBlockPtr spBlkPtr)
  543. ;
  544.     IF ¬ GENERATINGCFM THEN
  545.         ; parameters: 
  546.         ;     spBlkPtr          => A0
  547.         ; returns: 
  548.         ;     OSErr             <= D0
  549.         Macro
  550.         _InitSDeclMgr
  551.             moveq    #32,d0
  552.             dc.w     $A06E
  553.         EndM
  554.     ELSE
  555.         IMPORT_CFM_FUNCTION    InitSDeclMgr
  556.     ENDIF
  557.  
  558. ;
  559. ; pascal OSErr SPrimaryInit(SpBlockPtr spBlkPtr)
  560. ;
  561.     IF ¬ GENERATINGCFM THEN
  562.         ; parameters: 
  563.         ;     spBlkPtr          => A0
  564.         ; returns: 
  565.         ;     OSErr             <= D0
  566.         Macro
  567.         _SPrimaryInit
  568.             moveq    #33,d0
  569.             dc.w     $A06E
  570.         EndM
  571.     ELSE
  572.         IMPORT_CFM_FUNCTION    SPrimaryInit
  573.     ENDIF
  574.  
  575. ;
  576. ; pascal OSErr SCardChanged(SpBlockPtr spBlkPtr)
  577. ;
  578.     IF ¬ GENERATINGCFM THEN
  579.         ; parameters: 
  580.         ;     spBlkPtr          => A0
  581.         ; returns: 
  582.         ;     OSErr             <= D0
  583.         Macro
  584.         _SCardChanged
  585.             moveq    #34,d0
  586.             dc.w     $A06E
  587.         EndM
  588.     ELSE
  589.         IMPORT_CFM_FUNCTION    SCardChanged
  590.     ENDIF
  591.  
  592. ;
  593. ; pascal OSErr SExec(SpBlockPtr spBlkPtr)
  594. ;
  595.     IF ¬ GENERATINGCFM THEN
  596.         ; parameters: 
  597.         ;     spBlkPtr          => A0
  598.         ; returns: 
  599.         ;     OSErr             <= D0
  600.         Macro
  601.         _SExec
  602.             moveq    #35,d0
  603.             dc.w     $A06E
  604.         EndM
  605.     ELSE
  606.         IMPORT_CFM_FUNCTION    SExec
  607.     ENDIF
  608.  
  609. ;
  610. ; pascal OSErr SOffsetData(SpBlockPtr spBlkPtr)
  611. ;
  612.     IF ¬ GENERATINGCFM THEN
  613.         ; parameters: 
  614.         ;     spBlkPtr          => A0
  615.         ; returns: 
  616.         ;     OSErr             <= D0
  617.         Macro
  618.         _SOffsetData
  619.             moveq    #36,d0
  620.             dc.w     $A06E
  621.         EndM
  622.     ELSE
  623.         IMPORT_CFM_FUNCTION    SOffsetData
  624.     ENDIF
  625.  
  626. ;
  627. ; pascal OSErr SInitPRAMRecs(SpBlockPtr spBlkPtr)
  628. ;
  629.     IF ¬ GENERATINGCFM THEN
  630.         ; parameters: 
  631.         ;     spBlkPtr          => A0
  632.         ; returns: 
  633.         ;     OSErr             <= D0
  634.         Macro
  635.         _SInitPRAMRecs
  636.             moveq    #37,d0
  637.             dc.w     $A06E
  638.         EndM
  639.     ELSE
  640.         IMPORT_CFM_FUNCTION    SInitPRAMRecs
  641.     ENDIF
  642.  
  643. ;
  644. ; pascal OSErr SReadPBSize(SpBlockPtr spBlkPtr)
  645. ;
  646.     IF ¬ GENERATINGCFM THEN
  647.         ; parameters: 
  648.         ;     spBlkPtr          => A0
  649.         ; returns: 
  650.         ;     OSErr             <= D0
  651.         Macro
  652.         _SReadPBSize
  653.             moveq    #38,d0
  654.             dc.w     $A06E
  655.         EndM
  656.     ELSE
  657.         IMPORT_CFM_FUNCTION    SReadPBSize
  658.     ENDIF
  659.  
  660. ;
  661. ; pascal OSErr SCalcStep(SpBlockPtr spBlkPtr)
  662. ;
  663.     IF ¬ GENERATINGCFM THEN
  664.         ; parameters: 
  665.         ;     spBlkPtr          => A0
  666.         ; returns: 
  667.         ;     OSErr             <= D0
  668.         Macro
  669.         _SCalcStep
  670.             moveq    #40,d0
  671.             dc.w     $A06E
  672.         EndM
  673.     ELSE
  674.         IMPORT_CFM_FUNCTION    SCalcStep
  675.     ENDIF
  676.  
  677. ;
  678. ; pascal OSErr SInitSRsrcTable(SpBlockPtr spBlkPtr)
  679. ;
  680.     IF ¬ GENERATINGCFM THEN
  681.         ; parameters: 
  682.         ;     spBlkPtr          => A0
  683.         ; returns: 
  684.         ;     OSErr             <= D0
  685.         Macro
  686.         _SInitSRsrcTable
  687.             moveq    #41,d0
  688.             dc.w     $A06E
  689.         EndM
  690.     ELSE
  691.         IMPORT_CFM_FUNCTION    SInitSRsrcTable
  692.     ENDIF
  693.  
  694. ;
  695. ; pascal OSErr SSearchSRT(SpBlockPtr spBlkPtr)
  696. ;
  697.     IF ¬ GENERATINGCFM THEN
  698.         ; parameters: 
  699.         ;     spBlkPtr          => A0
  700.         ; returns: 
  701.         ;     OSErr             <= D0
  702.         Macro
  703.         _SSearchSRT
  704.             moveq    #42,d0
  705.             dc.w     $A06E
  706.         EndM
  707.     ELSE
  708.         IMPORT_CFM_FUNCTION    SSearchSRT
  709.     ENDIF
  710.  
  711. ;
  712. ; pascal OSErr SUpdateSRT(SpBlockPtr spBlkPtr)
  713. ;
  714.     IF ¬ GENERATINGCFM THEN
  715.         ; parameters: 
  716.         ;     spBlkPtr          => A0
  717.         ; returns: 
  718.         ;     OSErr             <= D0
  719.         Macro
  720.         _SUpdateSRT
  721.             moveq    #43,d0
  722.             dc.w     $A06E
  723.         EndM
  724.     ELSE
  725.         IMPORT_CFM_FUNCTION    SUpdateSRT
  726.     ENDIF
  727.  
  728. ;
  729. ; pascal OSErr SCalcSPointer(SpBlockPtr spBlkPtr)
  730. ;
  731.     IF ¬ GENERATINGCFM THEN
  732.         ; parameters: 
  733.         ;     spBlkPtr          => A0
  734.         ; returns: 
  735.         ;     OSErr             <= D0
  736.         Macro
  737.         _SCalcSPointer
  738.             moveq    #44,d0
  739.             dc.w     $A06E
  740.         EndM
  741.     ELSE
  742.         IMPORT_CFM_FUNCTION    SCalcSPointer
  743.     ENDIF
  744.  
  745. ;
  746. ; pascal OSErr SGetDriver(SpBlockPtr spBlkPtr)
  747. ;
  748.     IF ¬ GENERATINGCFM THEN
  749.         ; parameters: 
  750.         ;     spBlkPtr          => A0
  751.         ; returns: 
  752.         ;     OSErr             <= D0
  753.         Macro
  754.         _SGetDriver
  755.             moveq    #45,d0
  756.             dc.w     $A06E
  757.         EndM
  758.     ELSE
  759.         IMPORT_CFM_FUNCTION    SGetDriver
  760.     ENDIF
  761.  
  762. ;
  763. ; pascal OSErr SPtrToSlot(SpBlockPtr spBlkPtr)
  764. ;
  765.     IF ¬ GENERATINGCFM THEN
  766.         ; parameters: 
  767.         ;     spBlkPtr          => A0
  768.         ; returns: 
  769.         ;     OSErr             <= D0
  770.         Macro
  771.         _SPtrToSlot
  772.             moveq    #46,d0
  773.             dc.w     $A06E
  774.         EndM
  775.     ELSE
  776.         IMPORT_CFM_FUNCTION    SPtrToSlot
  777.     ENDIF
  778.  
  779. ;
  780. ; pascal OSErr SFindSInfoRecPtr(SpBlockPtr spBlkPtr)
  781. ;
  782.     IF ¬ GENERATINGCFM THEN
  783.         ; parameters: 
  784.         ;     spBlkPtr          => A0
  785.         ; returns: 
  786.         ;     OSErr             <= D0
  787.         Macro
  788.         _SFindSInfoRecPtr
  789.             moveq    #47,d0
  790.             dc.w     $A06E
  791.         EndM
  792.     ELSE
  793.         IMPORT_CFM_FUNCTION    SFindSInfoRecPtr
  794.     ENDIF
  795.  
  796. ;
  797. ; pascal OSErr SFindSRsrcPtr(SpBlockPtr spBlkPtr)
  798. ;
  799.     IF ¬ GENERATINGCFM THEN
  800.         ; parameters: 
  801.         ;     spBlkPtr          => A0
  802.         ; returns: 
  803.         ;     OSErr             <= D0
  804.         Macro
  805.         _SFindSRsrcPtr
  806.             moveq    #48,d0
  807.             dc.w     $A06E
  808.         EndM
  809.     ELSE
  810.         IMPORT_CFM_FUNCTION    SFindSRsrcPtr
  811.     ENDIF
  812.  
  813. ;
  814. ; pascal OSErr SDeleteSRTRec(SpBlockPtr spBlkPtr)
  815. ;
  816.     IF ¬ GENERATINGCFM THEN
  817.         ; parameters: 
  818.         ;     spBlkPtr          => A0
  819.         ; returns: 
  820.         ;     OSErr             <= D0
  821.         Macro
  822.         _SDeleteSRTRec
  823.             moveq    #49,d0
  824.             dc.w     $A06E
  825.         EndM
  826.     ELSE
  827.         IMPORT_CFM_FUNCTION    SDeleteSRTRec
  828.     ENDIF
  829.  
  830. ;
  831. ; pascal OSErr SSecondaryInit(SpBlockPtr spBlkPtr)
  832. ;
  833.     IF ¬ GENERATINGCFM THEN
  834.         ; parameters: 
  835.         ;     spBlkPtr          => A0
  836.         ; returns: 
  837.         ;     OSErr             <= D0
  838.         Macro
  839.         _SSecondaryInit
  840.             moveq    #50,d0
  841.             dc.w     $A06E
  842.         EndM
  843.     ELSE
  844.         IMPORT_CFM_FUNCTION    SSecondaryInit
  845.     ENDIF
  846.  
  847. ;
  848. ; pascal OSErr SInitSlotPRAM(SpBlockPtr spBlkPtr)
  849. ;
  850.     IF ¬ GENERATINGCFM THEN
  851.         ; parameters: 
  852.         ;     spBlkPtr          => A0
  853.         ; returns: 
  854.         ;     OSErr             <= D0
  855.         Macro
  856.         _SInitSlotPRAM
  857.             moveq    #51,d0
  858.             dc.w     $A06E
  859.         EndM
  860.     ELSE
  861.         IMPORT_CFM_FUNCTION    SInitSlotPRAM
  862.     ENDIF
  863.  
  864. ;
  865. ; pascal OSErr OpenSlot(ParmBlkPtr paramBlock, Boolean async)
  866. ;
  867.     IF GENERATINGCFM THEN
  868.         IMPORT_CFM_FUNCTION    OpenSlot
  869.     ENDIF
  870.  
  871. ;
  872. ; pascal OSErr OpenSlotSync(ParmBlkPtr paramBlock)
  873. ;
  874.     IF ¬ GENERATINGCFM THEN
  875.         ; parameters: 
  876.         ;     paramBlock        => A0
  877.         ; returns: 
  878.         ;     OSErr             <= D0
  879.         _OpenSlotSync:    OPWORD    $A200
  880.     ELSE
  881.         IMPORT_CFM_FUNCTION    OpenSlotSync
  882.     ENDIF
  883.  
  884. ;
  885. ; pascal OSErr OpenSlotAsync(ParmBlkPtr paramBlock)
  886. ;
  887.     IF ¬ GENERATINGCFM THEN
  888.         ; parameters: 
  889.         ;     paramBlock        => A0
  890.         ; returns: 
  891.         ;     OSErr             <= D0
  892.         _OpenSlotAsync:    OPWORD    $A600
  893.     ELSE
  894.         IMPORT_CFM_FUNCTION    OpenSlotAsync
  895.     ENDIF
  896.  
  897. ;  Device Manager Slot Support  
  898. ;
  899. ; pascal OSErr SIntInstall(SQElemPtr sIntQElemPtr, short theSlot)
  900. ;
  901.     IF ¬ GENERATINGCFM THEN
  902.         ; parameters: 
  903.         ;     sIntQElemPtr      => A0
  904.         ;     theSlot           => D0
  905.         ; returns: 
  906.         ;     OSErr             <= D0
  907.         _SIntInstall:    OPWORD    $A075
  908.     ELSE
  909.         IMPORT_CFM_FUNCTION    SIntInstall
  910.     ENDIF
  911.  
  912. ;
  913. ; pascal OSErr SIntRemove(SQElemPtr sIntQElemPtr, short theSlot)
  914. ;
  915.     IF ¬ GENERATINGCFM THEN
  916.         ; parameters: 
  917.         ;     sIntQElemPtr      => A0
  918.         ;     theSlot           => D0
  919.         ; returns: 
  920.         ;     OSErr             <= D0
  921.         _SIntRemove:    OPWORD    $A076
  922.     ELSE
  923.         IMPORT_CFM_FUNCTION    SIntRemove
  924.     ENDIF
  925.  
  926. ;
  927. ; pascal OSErr SVersion(SpBlockPtr spBlkPtr)
  928. ;
  929.     IF ¬ GENERATINGCFM THEN
  930.         ; parameters: 
  931.         ;     spBlkPtr          => A0
  932.         ; returns: 
  933.         ;     OSErr             <= D0
  934.         Macro
  935.         _SVersion
  936.             moveq    #8,d0
  937.             dc.w     $A06E
  938.         EndM
  939.     ELSE
  940.         IMPORT_CFM_FUNCTION    SVersion
  941.     ENDIF
  942.  
  943. ;
  944. ; pascal OSErr SetSRsrcState(SpBlockPtr spBlkPtr)
  945. ;
  946.     IF ¬ GENERATINGCFM THEN
  947.         ; parameters: 
  948.         ;     spBlkPtr          => A0
  949.         ; returns: 
  950.         ;     OSErr             <= D0
  951.         Macro
  952.         _SetSRsrcState
  953.             moveq    #9,d0
  954.             dc.w     $A06E
  955.         EndM
  956.     ELSE
  957.         IMPORT_CFM_FUNCTION    SetSRsrcState
  958.     ENDIF
  959.  
  960. ;
  961. ; pascal OSErr InsertSRTRec(SpBlockPtr spBlkPtr)
  962. ;
  963.     IF ¬ GENERATINGCFM THEN
  964.         ; parameters: 
  965.         ;     spBlkPtr          => A0
  966.         ; returns: 
  967.         ;     OSErr             <= D0
  968.         Macro
  969.         _InsertSRTRec
  970.             moveq    #10,d0
  971.             dc.w     $A06E
  972.         EndM
  973.     ELSE
  974.         IMPORT_CFM_FUNCTION    InsertSRTRec
  975.     ENDIF
  976.  
  977. ;
  978. ; pascal OSErr SGetSRsrc(SpBlockPtr spBlkPtr)
  979. ;
  980.     IF ¬ GENERATINGCFM THEN
  981.         ; parameters: 
  982.         ;     spBlkPtr          => A0
  983.         ; returns: 
  984.         ;     OSErr             <= D0
  985.         Macro
  986.         _SGetSRsrc
  987.             moveq    #11,d0
  988.             dc.w     $A06E
  989.         EndM
  990.     ELSE
  991.         IMPORT_CFM_FUNCTION    SGetSRsrc
  992.     ENDIF
  993.  
  994. ;
  995. ; pascal OSErr SGetTypeSRsrc(SpBlockPtr spBlkPtr)
  996. ;
  997.     IF ¬ GENERATINGCFM THEN
  998.         ; parameters: 
  999.         ;     spBlkPtr          => A0
  1000.         ; returns: 
  1001.         ;     OSErr             <= D0
  1002.         Macro
  1003.         _SGetTypeSRsrc
  1004.             moveq    #12,d0
  1005.             dc.w     $A06E
  1006.         EndM
  1007.     ELSE
  1008.         IMPORT_CFM_FUNCTION    SGetTypeSRsrc
  1009.     ENDIF
  1010.  
  1011. ;
  1012. ; pascal OSErr SGetSRsrcPtr(SpBlockPtr spBlkPtr)
  1013. ;
  1014.     IF ¬ GENERATINGCFM THEN
  1015.         ; parameters: 
  1016.         ;     spBlkPtr          => A0
  1017.         ; returns: 
  1018.         ;     OSErr             <= D0
  1019.         Macro
  1020.         _SGetSRsrcPtr
  1021.             moveq    #29,d0
  1022.             dc.w     $A06E
  1023.         EndM
  1024.     ELSE
  1025.         IMPORT_CFM_FUNCTION    SGetSRsrcPtr
  1026.     ENDIF
  1027.  
  1028.     ENDIF ; __SLOTS__
  1029.